package com.heng.dto;

import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.math.BigDecimal;

@Data
public class CreateOrderDTO {
    /** 商品ID（必传） */
    @NotNull(message = "商品ID不能为空")
    private Long productId;

    /** 优惠券ID（可选） */
    private Long couponId;

    /** 实付金额（必传，大于0） */
    @NotNull(message = "实付金额不能为空")
    @DecimalMin(value = "0.01", message = "实付金额必须大于0")
    private BigDecimal payAmount;

    /** 商品原价（必传） */
    @NotNull(message = "商品原价不能为空")
    @DecimalMin(value = "0.01", message = "商品原价必须大于0")
    private BigDecimal originalAmount;

    /** 支付方式（必传） */
    @NotBlank(message = "支付方式不能为空")
    private String payType;

    /** 已有地址ID（可选：与新增地址二选一） */
    private Long addressId;

    /** 新增地址-收件人（可选） */
    private String receiverName;

    /** 新增地址-电话（可选） */
    private String receiverPhone;

    /** 新增地址-省份（可选） */
    private String province;

    /** 新增地址-城市（可选） */
    private String city;

    /** 新增地址-区/县（可选） */
    private String district;

    /** 新增地址-详细地址（可选） */
    private String detailAddress;
}